<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>绘制线形</title>
  <style>
    canvas {
      border: 1px solid #000;
    }
  </style>
</head>

<body>
  <canvas id="myCanvas" height="700" width="800"></canvas>
  <script>
    // 获取画布
    const canvas = document.getElementById("myCanvas");
    // 获取上下文
    const ctx = canvas.getContext("2d");

    // 所有图像绘制都是通过ctx属性或者是方法进行设置的 获取后与canvas标签无关
    // 创建一个路径
    ctx.beginPath();
    // 绘制路径开始点
    ctx.moveTo(100, 100);
    // 绘制路径行进点
    ctx.lineTo(200, 200);
    ctx.lineTo(300, 100);

    // lineWidth: 设置线的粗细 属性值必须是Number 默认为1/1.0
    ctx.lineWidth = 10;

    // lineCap: 线的末端样式 默认butt
    //   - butt:    方形结束
    //   - round:   半圆结束
    //   - square:  方形结束，会增加一个当前线条厚度一半距离的长度
    // ctx.lineCap = "butt";
    ctx.lineCap = "round";
    // ctx.lineCap = "square";

    // lineJoin 属性是决定了图形中两段连接处显示的样子 默认miter
    // ctx.lineJoin = "miter";
    ctx.lineJoin = "round";
    // ctx.lineJoin = "bevel";

    // 封闭路径图形
    // ctx.closePath();
    ctx.stroke();

    ctx.setLineDash([10, 10]);
    // ctx.strokeRect(400, 100, 200, 200);
    ctx.beginPath();
    ctx.moveTo(0, 400);
    ctx.lineTo(200, 400);
    ctx.stroke();

  </script>
</body>

</html>